Python基础教程:函数的可变参数 您所在的位置:网站首页 python 函数星号 Python基础教程:函数的可变参数

Python基础教程:函数的可变参数

2023-08-18 19:56| 来源: 网络整理| 查看: 265

在Python函数中,还可以定义可变参数。

如:给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。

要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下:

def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum

但是调用的时候,需要先组装出一个list或tuple:

>>> calc([1, 2, 3]) 14 >>> calc((1, 3, 5, 7)) 84

如果利用可变参数,调用函数的方式可以简化成这样:

>>> calc(1, 2, 3) 14 >>> calc(1, 3, 5, 7) 84

所以,我们把函数的参数改为可变参数:

''' Python大型免费公开课,适合初学者入门 加QQ群:579817333 获取学习资料及必备软件。 ''' def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum

定义可变参数和定义list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:

>>> calc(1, 2) 5 >>> calc() 0

如果已经有一个list或者tuple,要调用一个可变参数怎么办?可以这样做:

''' Python大型免费公开课,适合初学者入门 加QQ群:579817333 获取学习资料及必备软件。 ''' >>> nums = [1, 2, 3] >>> calc(nums[0], nums[1], nums[2]) 14

这种写法当然是可行的,问题是太繁琐,所以Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

>>> nums = [1, 2, 3] >>> calc(*nums) 14

Python中可以在tuple、list、dict前加*号,作用是将变量解开成若干个独立的参数,传入函数,还有类似的有两个星号,是将字典解开成独立的元素作为形参。

def add(a, b): return a+b data = [4,3] print add(*data) #equals to print add(4, 3) data = {'a' : 4, 'b' : 3} print add(**data) #equals to print add(4, 3)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有